<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 峰与谷 -->
    <script>
      /*
        思路：
        1. 首先，使用循环遍历数组中的每个元素，循环的终止条件是变小于数组长度`n`。
        2. 对于每个偶数位置`i`，比较`nums[i]`和`nums[i+1]`的大小关系，如果`nums[i]`小于`nums[i+1]`，
        则交换它们的位置，使得`nums[i]`成为偶数位置上的最大值。
        3. 对于每个奇数位置`i`，比较`nums[i]`和`nums[i+1]`的大小关系，如果`nums[i]``nums[i+1]`，
        则交换它们的位置，使得`nums[i]`成为奇数位置上的最小值。
        4. 最后，返回排好序的数组`nums`。
      */
      var wiggleSort = function (nums) {
        let n = nums.length
        for (var i = 0; i < n; i++) {
          if (i % 2 == 0) {
            if (nums[i] < nums[i + 1]) {
              //交换位置让偶数位为峰
              const temp = nums[i]
              nums[i] = nums[i + 1]
              nums[i + 1] = temp
            }
          } else {
            if (nums[i] > nums[i + 1]) {
              //让奇数位为谷
              const temp = nums[i]
              nums[i] = nums[i + 1]
              nums[i + 1] = temp
            }
          }
        }
        return nums
      }
      console.log(wiggleSort([5, 3, 1, 2, 3]))
    </script>
  </body>
</html>
